| Anterior | Próximo | Índice |
Um programa .EXE é um programa que o DOS pode realocar na memória depois da carga. O que isso quer dizer? Quer dizer que todas as referências a endereços serão modificadas conforme o segmento de carga inicial. Essa modificação é possível porque o programa .EXE tem um cabeçalho com várias informações sobre o programa, entre elas um ponteiro para uma tabela de ítens relocáveis dentro do programa e um inteiro dizendo quandos ítens recoláveis o arquivo tem. Um programa .EXE exige sempre um SEGMENTO DE PILHA, e nesse segmento devem ser reservados os bytes suficientes para a pilha do programa. Você deve, também, inicializar o segmento de dados (DS), o segmento de pilha (SS) e o ponteiro de pilha (SP), sendo este último um rótulo colocado após os bytes reservados à pilha.
;arquivo: progexe.asm
;para criar o arquivo-objeto: nasm -fobj progexe.asm
;para criar progexe.exe:
;1) com Tlink digite: tlink progexe;
;2) com Alink digite: alink progexe -oEXE
segment CODIGO class=CODE
..start:
mov ax, SEGDADOS
mov ds,ax
mov ax, SEGPILHA
mov ss,ax
mov sp, PONTPILHA
mov dx, MENSAGEM
mov ah,9
int 0x21
mov ax, 0x4C00
int 0x21
segment SEGDADOS
MENSAGEM "Esse é um Programa .EXE", '$'
segment SEGPILHA STACK class=STACK align=16
resb 0x100
PONTPILHA:
|
| Anterior | Próximo | Índice |